package cz.semjobKB.search.api;

import cz.semjobKB.conllx.api.IWord;

/**
 *  Interface declares methods to operate over a extraction match.
 */
public interface IMatch {
	
	/**
	 * Gets matched word
	 * 
	 * @return Matched word
	 */
	public IWord getMatchWord();

    /**
     * Gets the textual word match
     * @return  Text of the match
     */
	public String getMatch();

    /**
     * Gets the rule name
     * @return  Rule name
     */
	public String getRuleName();

    /**
     * Gets the sentence position from beginning of the document
     * @return Sentence position number
     */
	public int sentenceNumber();

    /**
     * Determines whether the match can be a part of some other more larger and precise match and if so
     * then it can be dropped because of duplicity
     * @return False if its a minor, true if its a larger match
     */
	public boolean isVassal();

    /**
     * Gets the order position of the root word in the sentence.
     * @return  Position of the parent root word
     */
	public int getPositionRootMatch();
}
